#!/usr/bin/perl

use CGI qw(:standard);
use XML::RSS;
use LWP::Simple qw(get);
use XML::XPath;
use XML::XPath::XMLParser;

my $objeto = param('obj');
#my $objeto = decode($objeto_uri);
my $tematica = param('tematica');
my $idioma = param('idioma');

# Obtenemos la url del archivo RSS que cumpla con las opciones de idioma y temática.
# Corresponde a la dirección del archivo en la base de datos (eXist).
my $url;

if ($idioma == 0) {
	if ($tematica == 0) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo00.xml";
	} elsif ($tematica == 1) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo01.xml";
	} elsif ($tematica == 2) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo02.xml";
	} elsif ($tematica == 3) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo03.xml";
	} elsif ($tematica == 4) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo04.xml";
	} elsif ($tematica == 5) { 
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo05.xml";
	} elsif ($tematica == 6) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo06.xml";
	} elsif ($tematica == 7) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo07.xml";
	} else {
		print ('Error');
	}
}
else {
	if ($tematica == 0) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo10.xml";
	} elsif ($tematica == 1) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo11.xml";
	} elsif ($tematica == 2) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo12.xml";
	} elsif ($tematica == 3) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo13.xml";
	} elsif ($tematica == 4) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo14.xml";
	} elsif ($tematica == 5) { 
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo15.xml";
	} elsif ($tematica == 6) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo16.xml";
	} elsif ($tematica == 7) {
		$url= "http://admin:adrian@localhost:8080/exist/rest/db/RSS/archivo17.xml";
	} else {
		print ('Error');
	}
}

# Usamos un RSS auxiliar para almacenar el fichero obtenido anteriormente.
my $rdf = get($url);
my $rss_aux = new XML::RSS;
$rss_aux->parse($rdf);

# Buscamos el objeto dentro del RSS mediante XPath.
my $camino = XML::XPath -> new(filename => $rss_aux);
my $nodos_item = $camino -> find('/rss/channel/item/description[contains(.,'.$objeto.')]');

# Añadimos los item resultantes en un RSS de salida que se enviará al cliente.
my $rss_salida = new XML::RSS;
$rss_salida -> channel(title => 'Noticia', link => 'Link a la noticia', description => 'Breve Descripción' );
print header( -type => 'application/xhtml+xml' );

foreach my $item ($nodos_item -> get_nodelist) {
  $rss_salida -> add_item(title => $rss_aux -> {'item'} -> {'title'}, link => $rss_aux -> {'item'} -> {'link'}, description => $rss_aux -> {'item'} -> {'description'} );
}
print $rss_salida -> as_string;

